package com.mall.business.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mall.common.annotation.Excel;
import com.mall.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

/**
 * 退货售后对象 t_order_refund
 *
 * @author ruoyi
 * @date 2025-04-02
 */
@Data
@TableName(value = "t_order_refund")
@EqualsAndHashCode(callSuper = true)
public class TOrderRefund extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
     * "订单ID"
     */
    @Excel(name = "订单ID")
    private String orderId;
    /**
     * "订单流水号"
     */
    @Excel(name = "订单流水号")
    private String orderNumber;
    /**
     * "订单项ID "
     */
    @Excel(name = "订单项ID ")
    private String orderItemId;
    /**
     * "商品Id"
     */
    @Excel(name = "商品Id")
    private String productId;
    /**
     * "商品图片"
     */
    @Excel(name = "商品图片")
    private String productImage;
    /**
     * "商品名称"
     */
    @Excel(name = "商品名称")
    private String productTitle;
    /**
     * "商品数量"
     */
    @Excel(name = "商品数量")
    private Long productNum;
    /**
     * "商品简介"
     */
    @Excel(name = "商品简介")
    private String productInfo;
    /**
     * "商品价格"
     */
    @Excel(name = "商品价格")
    private BigDecimal productPrice;
    /**
     * "订单支付方式 1 微信支付 2 支付宝"
     */
    @Excel(name = "订单支付方式 1 微信支付 2 支付宝")
    private String payType;
    /**
     * "用户Id"
     */
    @Excel(name = "用户Id")
    private String userId;
    /**
     * "退货数量"
     */
    @Excel(name = "退货数量")
    private Long refundNum;
    /**
     * "退货金额"
     */
    @Excel(name = "退货金额")
    private BigDecimal refundPrice;
    /**
     * "申请类型:1,仅退款,2退款退货"
     */
    @Excel(name = "申请类型:1,仅退款,2退款退货")
    private String applyType;
    /**
     * "处理状态:1为待审核,2为同意,3为不同意"
     */
    @Excel(name = "处理状态:1为待审核,2为同意,3为不同意")
    private String checkStatus;
    /**
     * "处理退货状态: 1:退货处理中 2:退货成功 -3:退货失败"
     */
    @Excel(name = "处理退货状态: 1:退货处理中 2:退货成功 -3:退货失败")
    private String returnStatus;
    /**
     * "申请时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;
    /**
     * "平台审核时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "平台审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkDate;
    /**
     * "退货时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "退货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;
    /**
     * "图片"
     */
    @Excel(name = "图片")
    private String image;
    /**
     * "退货原因"
     */
    @Excel(name = "退货原因")
    private String refoundType;
    /**
     * "其他原因"
     */
    @Excel(name = "其他原因")
    private String buyerMsg;
    /**
     * "平台备注"
     */
    @Excel(name = "平台备注")
    private String checkRemark;
    /**
     * "物流公司名称"
     */
    @Excel(name = "物流公司名称")
    private String expressName;
    /**
     * "物流单号"
     */
    @Excel(name = "物流单号")
    private String expressNo;
    /**
     * "发货时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date shipTime;
    /**
     * "收货时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date receiveTime;
    /**
     * "收货备注"
     */
    @Excel(name = "收货备注")
    private String receiveMessage;

    /**
     * "姓名"
     */
    @TableField(exist = false)
    private String nickName;


}
